The present invention generally relates to multiprocess input systems, and more particularly to a multiprocess, input system which processes input data by multiprocessing.
Most of the systems adapted to the multiprocess (or multitask) and multiple users employ a user interface using graphic windows. For example, a Japanese input environment is provided on the window.
FIG. 1 is a diagram for explaining an example of a conventional multiprocess input system. In FIG. 1, a first process displays a text indicated by input data from a keyboard. For example, this first process corresponds to an operation of a word processor or a screen editor. On the other hand, a second process converts the input data from the keyboard into text data represented by 2 bytes. For example, this second process corresponds to a program for converting the input data (key codes) into Japanese Kana and Kanji characters. In this case, the input data, which are obtained through manipulation of the keyboard, are distributed to the first and second processes from a third process. For example, this third process is a window server.
When the transmission of the input data is requested from the first process to the third process in FIG. 1, the input data (key codes) from the keyboard are transmitted from the third process to the first process. Thereafter, when a specific key code is transmitted from the third process to the first process in response to the manipulation of a specific key of the keyboard, a request to cancel transmission of the input data is made from the first process to the third process, and at the same time, a request to switch the input is made from the first process to the second process. Responsive to this switch request from the first process, the second process requests transmission of the input data to the third process, and as a result, the input data from the keyboard are transmitted from the third process to the second process in place of the first process.
However, because the first, second and third processes operate independently of each other, a time lag occurs from a time when the first process requests cancellation of the input data transmission to the third process to a time when the second process requests transmission of the input data to the third process. For this reason, the codes of the keys are manipulated immediately after the specific key drops out due to this time lag, and there is a problem in that the third process cannot obtain a normal processing result. In this particular case, the third process cannot obtain a correct conversion result of the conversion from the input data (key codes) to the Japanese Kana and Kanji characters.
Hence, it is conceivable to employ a multiprocess input system shown in FIG. 2. In this conceivable multiprocess input system, the storage of the key codes is requested before requesting transmission of the key codes from the first process to the third process. In addition, the operation of storing the key codes is started by the third process from a time when the specific code is input.
Thereafter, when the transmission of the key codes is requested from the second process to the third process, the second process notifies the first process of the completion of the preparations. Furthermore, the output of the stored key codes is requested from the first process to the third process. In this case, the request to output the stored key codes is restricted to the first process which originally requested storage of the key codes. The transmission of the stored key codes from the third process to the second process is started in response to this request to output the stored key codes, and thus, the key codes input immediately after the specific code are positively received by the second process without the dropout caused by the time lag described above.
However, in the case of the conceivable multiprocess input system shown in FIG. 2, the amount of communication among the processes increases considerably because of the need to make the request to storage of the key codes, notify completion of the preparations, and request output of the stored key codes. Such an increase in the amount of communication is not negligible particularly in the case of large scale network systems, and should be avoided if possible.